{% load i18n admin_urls url_exists %}
<div class="submit-row">
{% block submit-row %}
{% if show_save %}<input type="submit" value="{% translate 'Save' %}" class="default" name="_save">{% endif %}
{% if show_save_as_new %}<input type="submit" value="{% translate 'Save as new' %}" name="_saveasnew">{% endif %}
{% if show_save_and_add_another %}<input type="submit" value="{% translate 'Save and add another' %}" name="_addanother">{% endif %}
{% if show_save_and_continue %}<input type="submit" value="{% if can_change %}{% translate 'Save and continue editing' %}{% else %}{% translate 'Save and view' %}{% endif %}" name="_continue">{% endif %}
{% if show_close %}
    {% url opts|admin_urlname:'changelist' as changelist_url %}
    <a href="{% add_preserved_filters changelist_url %}" class="closelink">{% translate 'Close' %}</a>
{% endif %}

    {% if original %}
        <!-- 生成完整的URL名称（如 'admin:base_rawmodel_printone'） -->
        {% with url_name=opts|admin_urlname:'printone' %}
            <!-- 使用过滤器判断URL是否存在，参数为original.pk -->
            {% if url_name|url_exists:original.pk %}
                <button type="button"
                       class="print-btn "
                       data-print-url="{% url url_name original.pk|admin_urlquote  %}" >打印
                </button>
            {% endif %}
        {% endwith %}
    {% else  %}
        {% with url_name=opts|admin_urlname:'printone' %}
            {% if url_name|url_exists:0 %}
                <button type="button"
                       class="print-btn "
                       data-print-url="{% url url_name 0|admin_urlquote %}" >打印
                </button>
             {% endif %}
        {% endwith %}
    {% endif %}
{#    {% if original %}#}
{#    <button type="button"#}
{#       class="print-btn "#}
{#       data-print-url="{% url opts|admin_urlname:'printone' original.pk|admin_urlquote  %}" >打印#}
{#    </button>#}
{##}
{##}
{#    {% endif %}#}
    <script>
        // 监听打印按钮点击事件
        // 注意：需判断按钮是否存在，避免JS报错
        const printBtn = document.querySelector('.print-btn');
        if (printBtn) {
           printBtn.addEventListener('click', function() {
            // 1. 获取打印页面的基础 URL（如 /admin/base/rawmodel/print/1/）
            const baseUrl = this.getAttribute('data-print-url');

            // 2. 获取当前表单的所有输入值
            const form = document.querySelector('form'); // 定位 Admin 表单
            const formData = new FormData(form);
            // 3. 创建一个隐藏的表单用于提交POST请求
            const hiddenForm = document.createElement('form');
            hiddenForm.action = baseUrl; // 提交的目标URL
            hiddenForm.method = 'POST'; // 使用POST方法
            hiddenForm.target = '_blank'; // 在新窗口打开打印页（和原窗口打开方式一致）

            // 4. 处理表单数据，排除不需要的字段（如CSRF令牌可能需要保留，视后端需求而定）
            formData.forEach((value, key) => {
                // 根据实际需求筛选参数（这里保留CSRF令牌，因为POST请求通常需要）
                if (!key.includes('_save')) { // 排除不需要的字段（如保存按钮）
                    const input = document.createElement('input');
                    input.type = 'hidden'; // 隐藏字段
                    input.name = key;
                    input.value = value;
                    hiddenForm.appendChild(input);
                }
            });

            // 5. 将表单添加到页面并提交
            document.body.appendChild(hiddenForm);
            hiddenForm.submit();

            // 6. 清理动态创建的表单
            document.body.removeChild(hiddenForm);







        });
       ;}
    </script>



{% if show_delete_link and original %}
    {% url opts|admin_urlname:'delete' original.pk|admin_urlquote as delete_url %}
    <a href="{% add_preserved_filters delete_url %}" class="deletelink">{% translate "Delete" %}</a>
{% endif %}


{% endblock %}
</div>

